﻿using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using System.Collections.Generic;

namespace Plot08
{
    /// <summary>
    /// 用于放置自动运行的代码的类
    /// </summary>
    public class Startup : IExtensionApplication
    {
        /// <summary>
        /// DLL加载后自动运行的代码
        /// </summary>
        public void Initialize()
        {
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;

            ed.WriteMessage("\n本程序用于在Tk.xml中记录有图框块名称的批量打印情况");

            ed.WriteMessage("\n命令< mp >用于模型空间或图纸空间内手动框选打印范围（范围包含有图框块）的情况（需要已设定布局的当前页面设置）");

            ed.WriteMessage("\n命令< mpa >用于模型空间或图纸空间内手动框选打印范围（范围包含有图框块）的情况（使用前期记录的页面设置）");

            ed.WriteMessage("\n命令< lpa >只能在图纸空间使用，自动打印全部《图纸空间》内指定名称（在TK.xml记录）的图框块范围（需要已设定当前布局的当前页面设置）");

            ed.WriteMessage("\n命令< mpall >用于批量打印所有打开图纸<命令运行时所在的空间>中给定图框块的情况（使用前期记录的页面设置）");
            
            ed.WriteMessage("\n命令< lsset >列出记录文件中的页面设置信息");

            ed.WriteMessage("\n命令< svset >将页面设置存储到文件，供以后使用");

            ed.WriteMessage("\n命令< delset >将记录文件中的某一页面设置删除");

            ed.WriteMessage("\n命令< +tk >将图框块名称加入记录文件TK.xml，供以后使用");

            ed.WriteMessage("\n命令< -tk >将TK.xml记录中的对应图框块名称移除");

            ed.WriteMessage("\n命令< mphelp >显示本程序的相关命令说明");

            //Application.ShowAlertDialog("没有找到用于记录配置参数的xml文件");

            string sAssemblyPath = System.Reflection.Assembly.GetExecutingAssembly().Location;

            string shortName = System.IO.Path.GetFileName(sAssemblyPath);

            string xmlFilePath = "";

            xmlFilePath = sAssemblyPath.Replace(shortName, "Tk.xml");


            if (System.IO.File.Exists(xmlFilePath) == false)
            {

                ed.WriteMessage("\n没有找到用于记录图框块名称的文件，打印时需手动选择要打印的图块的名称，或者将记录文件Tk.xml复制到本程序Dll所在文件夹");

                ed.WriteMessage("\n本程序会自动创建一个空白的Tk.xml文件，程序操作中的图框块名称会记录至该文件");

                XmlTool Tool = new XmlTool(xmlFilePath);

                Tool.CreateXmlContent_TkName();

                Tool = new XmlTool(xmlFilePath);

                List<string> nameS = new List<string>();

                nameS = Tool.Get_TkNameInfo();

                ed.WriteMessage("\n文件默认包含以下图框名称：：\n");

                foreach (var item in nameS)
                {

                    ed.WriteMessage(item + "   ");

                }

            }
            else
            {
                ed.WriteMessage("\n找到图框块名称记录文件，文件记录如下图框块名称：：");


                XmlTool Tool = new XmlTool(xmlFilePath);

                List<string> nameS = new List<string>();

                nameS = Tool.Get_TkNameInfo();

                foreach (var item in nameS)
                {

                    ed.WriteMessage(item + "   ");

                }

            }

        }
        /// <summary>
        /// 程序推出前做的清理工作
        /// </summary>
        public void Terminate()
        {
        }
    }

}
